์ž‘์„ฑ: 2024-11-27 06:30:34
    ์ˆ˜์ •: 2024-11-27 06:30:34

    ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (CSR [Client Side Rendering])

    ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (CSR, Client-Side Rendering)์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ˜ํ…์ธ ๊ฐ€ ์ฃผ๋กœ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์—์„œ ๋ Œ๋”๋ง๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML ํŒŒ์ผ์„ ๋ฐ›๊ณ , ์ดํ›„์˜ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋Š” JavaScript๋ฅผ ํ†ตํ•ด ๋™์ ์œผ๋กœ ๋กœ๋“œ๋˜๊ณ  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ์ฃผ์š” ๊ฐœ๋…

    1. ์ดˆ๊ธฐ ๋กœ๋”ฉ: ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ HTML ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ JavaScript ํŒŒ์ผ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด HTML ํŒŒ์ผ์—๋Š” ๋นˆ <div> ํƒœ๊ทธ๋‚˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, JavaScript๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์‹ค์ œ ์ฝ˜ํ…์ธ ๊ฐ€ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

    2. JavaScript ์‹คํ–‰: ํด๋ผ์ด์–ธํŠธ๋Š” JavaScript๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ์ง์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ API ํ˜ธ์ถœ์„ ํ†ตํ•ด ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ , DOM์„ ์กฐ์ž‘ํ•˜์—ฌ ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

    3. ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA): CSR์€ ์ฃผ๋กœ SPA์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํŽ˜์ด์ง€ ์ „ํ™˜ ์‹œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹ , ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์™€ ๊ธฐ์กด ํŽ˜์ด์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    ์žฅ์ 

    1. ๋น ๋ฅธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜: ํ•œ ๋ฒˆ ๋กœ๋“œ๋œ ํ›„, ํŽ˜์ด์ง€ ์ „ํ™˜์ด ๋งค์šฐ ๋น ๋ฅด๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์›ํ™œํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JavaScript๊ฐ€ DOM์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

    2. ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ UI: ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋™์ ์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ๋ณต์žกํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. ์„œ๋ฒ„ ๋ถ€๋‹ด ๊ฐ์†Œ: ์„œ๋ฒ„๋Š” ์ดˆ๊ธฐ HTML์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์„ ํด๋ผ์ด์–ธํŠธ์— ๋งก๊ธฐ๋ฏ€๋กœ, ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

    ๋‹จ์ 

    1. ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ๊ฐ„: ์ฒซ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ JavaScript๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ๋Š๋ฆฐ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ๋” ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.

    2. SEO ๋ฌธ์ œ: ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ฝ˜ํ…์ธ ๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰ ์—”์ง„์ด ํŽ˜์ด์ง€๋ฅผ ์ œ๋Œ€๋กœ ํฌ๋กค๋งํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ์˜ ๊ฒ€์ƒ‰ ์—”์ง„์ด JavaScript๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ๋‹ค์†Œ ์™„ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    3. ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ: ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ JavaScript๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ผ๋ถ€ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ ์‚ฌ๋ก€

    • ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (SPA): React, Vue.js, Angular ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ์•ฑ๋“ค์ด ์ฃผ๋กœ CSR์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋Œ€ํ™”ํ˜• ๋Œ€์‹œ๋ณด๋“œ: ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์ด ๋งŽ์€ ๋Œ€์‹œ๋ณด๋“œ์™€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋„๊ตฌ์—์„œ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
    • ๊ฒŒ์ž„: ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์—์„œ๋„ CSR ๋ฐฉ์‹์ด ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒฐ๋ก 

    ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์€ ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„๊ณผ SEO ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฉฐ, ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.